/**
 * Fonction pour effacer les données sur la carto.
 */
function cleanCarto() {
	$('#zoneNavId').html("");
	$('#regionCanvasPmId').html("");
	$('#regionCanvasDeltaPMId').html("");
	$('#regionCanvasVolId').html("");
	$('#regionCanvasDeltaVolId').html("");
	$('#regionCanvasEvolId').html("");
	$('#libNiveauId').html("");
	$('#secteurCanvasPmId').html("");
	$('#secteurCanvasDeltaPMId').html("");
	$('#secteurCanvasVolId').html("");
	$('#secteurCanvasDeltaVolId').html("");
	$('#secteurCanvasEvolId').html("");
	$('#secteurCanvasUga').html("");
	$('#secteurCanvasUgaPmId').html("");
	$('#secteurCanvasUgaDeltaPMId').html("");
	$('#secteurCanvasUgaVolId').html("");
	$('#secteurCanvasUgaDeltaVolId').html("");
	$('#secteurCanvasUgaEvolId').html("");
	$('#regionCanvasUga').html("");
	$('#regionCanvasUgaPmId').html("");
	$('#regionCanvasUgaDeltaPMId').html("");
	$('#regionCanvasUgaVolId').html("");
	$('#regionCanvasUgaDeltaVolId').html("");
	$('#regionCanvasUgaEvolId').html("");
}

/**
 * Mise à jour de l'onglet actif lors du clic sur un niveau de l'arbre.
 */
function updateOngletActif(nivGeog, geog, idGeog) {
	// Carto
	var carto = Ext.getCmp('carto');
	if (!carto.hidden && idGeog != '') {
		cleanCarto();
		$('#regionCanvas').empty();
		$('#secteurCanvas').empty();
		$('#loaderCanvasRegion').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
		$('#loaderCanvasSecteur').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
		dessinerLegendeCartoRegion(nivGeog, idGeog, "true");
		dessinerRegion(nivGeog, idGeog, "true"); // false
		dessinerSecteur(nivGeog, idGeog, -1, -1, true, "true");
	}
	// Graphes 
	var graphDyn = Ext.getCmp('graphDyn');
	if (!graphDyn.hidden) {
		$("#buttonConfigId").css("display", "none");
		$("#graphDynamic").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
		loadGraphDynamic(nivGeog, geog, idGeog);
	}
	var graphWF = Ext.getCmp('graphWF');
	if (!graphWF.hidden) {
		$("#graphWaterfall").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
		if (nivGeog == 'UGA') {
  			var elem = $("#" + idGeog + "-" + nivGeog).parent().parent().parent().children("a").get(0).id.split("-");
			var geogTmp = $("#" + idGeog + "-" + nivGeog).parent().parent().parent().children("a").get(0).textContent.replace(/\s/g, "");
  			loadGraphWaterfall(elem[1], geogTmp, elem[0]);
		} else {
			loadGraphWaterfall(nivGeog, geog, idGeog);
		}
	}
	var graphBub = Ext.getCmp('graphBub');
	if (!graphBub.hidden) {
		$("#graphBubble").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
		if (nivGeog == 'UGA' && !ugp) {
  			var elem = $("#" + idGeog + "-" + nivGeog).parent().parent().parent().children("a").get(0).id.split("-");
			var geogTmp = $("#" + idGeog + "-" + nivGeog).parent().parent().parent().children("a").get(0).textContent.replace(/\s/g, "");
  			loadGraphBubble(elem[1], geogTmp, elem[0]);
		} else {
			loadGraphBubble(nivGeog, geog, idGeog);
		}
	}
	var graphDel = Ext.getCmp('graphDel');
	if (!graphDel.hidden) {
		$("#graphDeltaPm").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
		loadGraphDeltaPm(nivGeog, geog, idGeog);
	}
	var eastGraphQuota = Ext.getCmp('eastGraphQuota');
	if (!eastGraphQuota.hidden) {
		$("#graphQuota").html('<img src="img/ajax-loader.gif" style="padding-right:5px;" />');
		loadGraphQuota(nivGeog, geog, idGeog);
	}
	// Variable globale 
	globalNivGeog = nivGeog;
}

/**
 * Affichage de l'arbre de navigation : France, Zones, Regions, Secteurs, UGA, UGP.
 * @param filter
 * 		Chaine de caractères pour filtrer l'arbre.
 * @param simulateClick
 * 		Spécifie si l'on doit simuler un clic dans l'arbre de navigation.
 */
function loadJsTreeWithSecto(filter, simulateClick) { 
	
	var source = $('#sourceId').get(0).value;
	var periode = $('#periodId').get(0).value;
	var unite = $('#unitId').get(0).value;
	
 	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './secto.do',
 		target: "_blank", 
 		data : {
 			filter: 	filter,
 			source: source,
 			periode: 	periode,
 			unite:		unite
 		},
 		error: function () {
 			alert('Erreur au chargement du jsTree avec les UGA');
 		},
 		success: function(result) { 
 			
 			// Ce n est plus le premier affichage 
 			firstDisplay = false;
 			
 			$("#myTree").empty();
 			
			$("#myTree").jstree({
   				plugins: ["themes", "json_data", "crrm", "ui", "unique", "types", "search"],
				json_data : { 
    				data:  result.datas
		 		} 
   			}).bind("select_node.jstree", function (e, data) {
              	var code = data.rslt.obj.context.id.split('-')[0];
              	idGeog = code;
              	var label = data.inst.get_text(data.rslt.obj);
              	var disabledCheckbox;
              	
              	if (data.inst.get_path().length == 1) { // Premier niveau : France
              		idGeog = 0;
              		// Carto
       				var carto = Ext.getCmp('carto');
       				if (!carto.hidden) {
       					cleanCarto(); 
	              		$('#regionCanvas').empty();
	              		$('#secteurCanvas').empty();
	              		$('#loaderCanvasRegion').html("<div>Veuillez s&eacute;lectionner un niveau ...</div>");
       				}
              		// Requetes en fonction de l'onglet selectionne
       				var graphDyn = Ext.getCmp('graphDyn');
       				if (!graphDyn.hidden) {
       					loadGraphDynamic("France", label, idGeog);
       				}
       				var graphWF = Ext.getCmp('graphWF');
       				if (!graphWF.hidden) {
       					loadGraphWaterfall("France", label, idGeog);
       				}
       				var graphBub = Ext.getCmp('graphBub');
       				if (!graphBub.hidden) {
       					loadGraphBubble("France", label, idGeog);
       				}
       				var graphDel = Ext.getCmp('graphDel');
       				if (!graphDel.hidden) {
       					loadGraphDeltaPm("France", label, idGeog);
       				}
       				// Infos
              		loadGraphQuota("France", label, idGeog);
              		globalNivGeog = "France";
              		disabledCheckbox = true;
              	} else if (data.inst.get_path().length == 2) { // Deuxieme niveau : Zone
              		updateOngletActif("Zone", label, idGeog);
              		disabledCheckbox = true;
              	} else if (data.inst.get_path().length == 3) { // Troisieme niveau : Region
              		updateOngletActif("Region", label, idGeog);
              		disabledCheckbox = false;
              	} else if (data.inst.get_path().length == 4) { // Quatrieme niveau : Secteur
              		updateOngletActif("Secteur", label, idGeog);
              		disabledCheckbox = false;
              	} else { // Cinquieme niveau : UGA
              		updateOngletActif("UGA", label, idGeog);
              		disabledCheckbox = false;
       				filterGridArray = " " + label + ";";
              	}
              	
              	if ($('#checkbox-region').get(0) != undefined) {
          			$('#checkbox-region').get(0).disabled = disabledCheckbox;
          		}
              	
              	globalGeog = label;
              	
              	// Rafraichissement de la zone sud 
              	updateLevelInformations();
              	
   			}).bind("open_node.jstree", function (e, data) {
   				filterGridArray = "";
   			}).bind("close_node.jstree", function (e, data) {
   				filterGridArray = "";
  		  	}).bind("loaded.jstree", function (event, data) {
  		  		// Au chargement de l'arbre 
  		  		
  		  		if (filter != "") { // Lorsqu'on filtre, on ouvre l'arbre en entier 
  		  			$(this).jstree("open_all"); 
  		  		} else {
  		  			if (firstCallSecto) { // Premier appel pour l'affichage de la secto 
  		  				firstCallSecto = false;
	  		  			if (result.niveau == 'France') {
	  		  				// Si le niveau est France, on simule un clic sur ce niveau 
	  		  				$("#France").click();
	  		  			} else {
	  		  				// On ouvre le jstree en fonction de l'utilisateur connecté 
	  	  		  			if (result.niveau == 'Region' || result.niveau == 'Secteur') {
	  	  		  				$(this).jstree("open_node", $("#" + result.cs_niveau + "-" + result.niveau).parent().parent().parent().children("a"));
	  	  		  			}
	  	  		  			$("#" + result.cs_niveau + "-" + result.niveau).addClass("jstree-clicked");
	  	  		  			if (simulateClick) {
	  	  		  				$("#" + result.cs_niveau + "-" + result.niveau).click();
	  	  		  			}
	  		  			}
	  		  			// Chargement de la zone sud 
	  		  			// updateLevelInformations();
  		  			} else { // Reaffichage de la secto 
  		  				if (globalNivGeog != 'France') {
  		  					$(this).jstree("open_node", $("#" + idGeog + "-" + globalNivGeog).parent().parent().parent().children("a"));
  		  				}
  		  				$("#" + idGeog + "-" + globalNivGeog).addClass("jstree-clicked");
  		  				if (simulateClick) {
  		  					$("#" + idGeog + "-" + globalNivGeog).click();
  		  				}
  		  			}
  		  		}
			}); 
			
			if (filter == "") {
				if (firstCallSecto) { // Premier affichage de la secto, on recherche le niveau de l utilisateur 
					globalNivGeog = result.niveau;
		 			globalGeog = "";
		 			if (result.niveau == 'France') {
		 				// France
		 				globalNivGeog = 'France';
		 				idGeog = 0;
		 			} else {
		 				// Zone, region ou secteur de l utilisateur 
		 				idGeog = result.cs_niveau;
		 			}
				}
 			}
			
 		}
 	}); 
}